#ifndef SHUI_SURFACEIMPL_H
#define SHUI_SURFACEIMPL_H

#include "core/disp/surface.h"
#include "tool/defines.h"

namespace ShUi
{

class DrawingSurface;
class SurfaceImpl;
class Surface : public ShCo::Surface
{
public:
    Surface(DrawingSurface*);
    ~Surface();

    void setAttribute(const SsWireAt*);
    const SsWireAt* attribute() const;

    void drawCurve(const SsCurve*);
    void drawLine(const SsLine*);
    void drawLine(const SsPoint*, const SsPoint*);
    void drawPoint(const SsPoint*);

    void clear();
    void resize(int width, int height);
    QPixmap* buffer() const;

private:
    SH_DECLARE_IMPL(Surface);
    SH_DISABLE_COPY(Surface);
};

}

#endif // SHUI_SURFACEIMPL_H
